1. Technical Field
The present invention relates in general to digital communications and in particular to the management and processing of data stream constructs in a manner which achieves meaningful and precise management of the data stream independent of the application program which generated the data stream. The invention provides a data stream architecture which allows a high degree of flexibility in passing document data, formatting information and resources from one application program to another by permitting existing shell structures containing such matters to be temporarily modified by the creation of formatting shell fragments.
2. Background Art
The management of a data stream in a digital communications network, such as a Local Area Network (LAN), or larger teleprocessing networks, presents many problems, particularly where the data streams are generated at various terminals or work stations which operate with a variety of application programs having different control characters and protocols.
As an example, consider a hypothetical teleprocessing network supporting communications between two or more end users. The end users may be an application program, a storage device or an operator at a display terminal. Serving the end users are a set of communications functions dealing with the language, including the formatting, translation and/or editing, dialogue, discipline to control data flow, transmission control including flow rate control and sequence control, and transportation, including passage of signals through a more or less complex transmission network between addressable units.
Systems Network Architecture (SNA) defines sets of communications related functions that are distributed throughout a network. It also defines the formats and protocols which relate these distributed functions to one another. An SNA network is highly transparent; i.e., any bit stream is allowed and the end users are not concerned with network topology, route selection, or media used. A session is defined as a temporary logical connection between network addressable units for an exchange of messages in accordance with a set of SNA functions devoted to that session. The SNA network thus provides sets of distributed services to facilitate dialogues between pairs of users. The SNA services are organized into layers so that functions that are logically independent may be designed, implemented and invoked independently. An end user may use concurrent sessions to communicate with other end users at multiple network addresses.
As mentioned above, an end user in an SNA network may be an application program, an operator of an input/output (I/O) device, or a storage medium. The most general form of end user is an application program. The interaction between a program and an SNA network includes data exchange and/or interchange and the occasional exchange of commands and indicators for control of SNA functions. Different application programs on an SNA network typically generate data streams unique to that program. While the SNA network architecture facilitates communication between end users and the network, if the end users are applications generating incompatible data streams, meaningful communication will not be achieved.
As utilized herein, a data stream is a collection of structured fields and is defined by the syntax and semantics of the structured fields. By syntax, what is meant is the manner in which the structured fields and parameters are grouped independently of their meaning or the manner of their interpretation and use. By semantics, is meant the meaning of the structured fields and parameters independently of their interpretation and use. The data stream is interpreted to generate a visual or conceptual entity such as a document. A document, in turn, is composed of pages, data objects, resources and commands, and is in either revision, presentation or resource data format or combination thereof.
As an example, text processing applications generate data streams which have embedded formatting and textual commands. These commands typically vary from one application program to another. Revisable/Format/Text/ Document/Content/Architecture (RFTDCA) was developed to provide for the interchange of data streams from different text processing applications and to allow for the consistent interpretation of embedded formatting and textual commands.
The International Standards Organization (ISO) has defined standards for document processing and interchange. Specifically, the Standard Generalized Markup Language (SGML), Publication 8879, and Office Document Architecture/Office Document Interchange Facility (ODA/ODIF), Publication 8613, are two such standards. SGML is a representation language for character text and may be utilized to define the specifications for publishing systems. Generic markup, that is, identification of the role of document elements rather than how to present those elements, is the basis of SGML. SGML is also used to interchange text documents, but since non-text data, such as scanned images and graphics, may coexist with text data in a document, the requirement to interchange documents containing non-text data is not totally addressed by SGML. This requirement is more appropriately handled by ODA.
ODA is a method of describing document structures and all types of text and non-text information that are to be included in a document. This structure description is referred to as an architecture, and the representation of the document is in a form suitable for interchange. The encoding of ODA for interchange is defined in a serial form which is a data stream. An ODA document can contain scanned images and graphics data as well as character text integrated into one consistent data stream.
ODA allows for control of the formatting process, not by embedding formatting commands, but rather by specifying attributes called layout and presentation directives, that are associated with objects defined by the document structure description. These directives are grouped together to form layout and presentation styles which, in turn, may be referenced by one or more objects in the document structure.
ODA styles may be local or external to a document but the interpretation of style attributes and values is explicitly controlled by the ODA standard. There is no explicit link from a point in an ODA data stream to a location in a style specification. The creator of an ODA document may augment the style specification by embedding user defined attribute names and values within the ODA object descriptions. User defined attributes specify an application dependent function that is to be applied to an ODA object during the document processing phase. This information is meaningful only within the creating application, and not interpretable by an arbitrary end user.
Interleaf, Xerox Ventura Publisher and Microsoft Word are examples of editing applications that use style sheets rather than embedded controls or commands to control formatting and layout. This method may be unwieldy, because, once properties are assigned to the content of a document, making systematic, global changes becomes tedious and difficult. Also, changes to style sheets may only be made within the application that created the document. Ventura Publisher has a strong import facility that accepts a diversity of file formats generated by text processing applications. These files are imported raw into Ventura Publisher where detailed formatting is performed as a post processing task based upon a style sheet chosen by the operator initiating the file import task. Default style sheets are filed separately in both Ventura Publisher and Microsoft Word, and may be accessed by multiple documents from within the Ventura Publisher and Microsoft Word applications. Microsoft Word documents normally contain a local style sheet which may be edited if the operator desires each document to have a different style sheet. In both applications, style sheet customization is available only from within the application program, and there are no explicit references from a point in a document to a location in the style sheet. The only end user who may modify a style sheet is an end user of either Ventura Publisher or Microsoft Word.
Moreover, the data streams produced under the ISO standards or by known application program products in general tend to be complex due to a desire to accommodate as many anticipated formatting requirements as possible. Consider, for example, a spread sheet application program. Intercell, row and column processing requirements differ with each operator. Designing an application program to handle all possible desires necessarily results in an extremely cluttered data stream. What is needed is a data stream architecture which is uncluttered and which permits compatible communication along diverse application programs in a network. More specifically, a mixed object document content architecture is preferred which allows documents to be interchanged among diverse products in order to process the data in the documents in a consistent manner. Within such a mixed object document content architecture, what is needed is a data stream standard which unburdens the data stream of the various formatting commands, thereby simplifying the data stream architecture and facilitating a more compatible document data interchange.
Recently, a system has been proposed which utilizes a shell structure which specifies how to manage and process tagged constructs or elements that are independent of the data content but may appear concurrently with the data in a data stream representation of a document created by an editor or other similar application. The shell structure is separate from the data stream, may be transmitted independently and may be stored in any form recognized by the network.
The shell structure system includes a tag element function which links constructs in a data stream by referencing named constructs in a shell structure. The named shell construct specifies the rules, relationships and formatting information either directly or indirectly that govern the processing and management of the data stream construct containing the reference. Such shell structures may be easily tailored by an end user; however, once modified, the original shell information is no longer available to the user. It is therefore obvious that a need exists for a method of easily and temporarily modifying or redefining such a shell structure without eliminating the original shell structure itself.